﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Brjostagjof.Models
{
    public interface IBrjostagjofRepository
    {
        #region Frettagreinar

        IEnumerable<NewsArticle> GetAllNews();
        IEnumerable<NewsArticle> GetAllDeletedNews();
        void SaveNewsArticle(NewsArticle newNewsArticle);
        void UpdateNewsArticle(int id, NewsArticle changedNewsArticle);
        void DeleteNewsArticle(int id);
        #endregion Frettagreinar

        #region Greinar
        IEnumerable<Article> GetAllArticles();
        IEnumerable<Article> GetAllDeletedArticles();
        Article GetArticleById(int id);
        void SaveArticle(Article newArticle);
        void UpdateArticle(int id, Article changedArticle);
        void DeleteArticle(int id);

        #endregion Greinar

        #region Auglysingar
        IEnumerable<Ad> GetAllAds();
        void SaveAd(Ad newAd);
        Ad GetNewestAd();
        #endregion Auglysingar

        #region Flokkar
        IEnumerable<Category> GetAllCategories();
        void SaveCategory(Category categoryToSave);
        #endregion Flokkar

        #region Algengar Spurningar
        IEnumerable<CommonQuestion> GetAllCommonQuestions();
        void SaveCommonQuestion(CommonQuestion faqToSave);
        #endregion Algengar Spurningar

        #region Myndir
        void SaveImage(Image imgToSave);
        IEnumerable<Image> GetAllImages();
        IEnumerable<Image> GetImageByUser(Guid id);
        IEnumerable<Image> GetImageByChild(Guid parentID, int childID);
        #endregion Myndir

        #region Myndbönd
        void SaveVideo(Video vidToSave);
        IEnumerable<Video> GetAllVideos();
        Video GetVideoById(int? id);
        #endregion Myndbönd

        #region YouTube
        void SaveYouTube(YouTube ytToSave);
        IEnumerable<YouTube> GetAllYT();
        YouTube GetYTById(int? id);
        #endregion

        #region Children
        void SaveChild(Child childToSave);
        IEnumerable<Child> GetAllChildren();
        void UpdateChild(int id, Child changedChild);
        Child GetChildByID(int? id);
        IEnumerable<Child> GetChildByParentid(Guid parentid);
        #endregion Children

        #region Users

            void SaveUserInfo(RegisterViewModel newUserInfo);
            IEnumerable<aspnet_User> GetAllUsers();
            IEnumerable<aspnet_Membership> GetAllSubscribers();
            IEnumerable<aspnet_Membership> GetAllAdmins();
            IEnumerable<aspnet_Membership> GetAllProfessionals();
            IEnumerable<aspnet_Role> GetAllRoles();
            String GetName(Guid id);
            aspnet_User GetUserById(Guid id);
            aspnet_Membership GetUserInfoById(Guid id);
            IEnumerable<aspnet_Membership> GetAllRoleRequests();
            void UpdateUserInfo(aspnet_Membership userToUpdate);

        #endregion

        #region Surveys
        void SaveSurvey(Survey surveyToSave);
        Survey GetNewestSurvey();
        #endregion Surveys


    }
}
